package QianFeng11.Bean;

import org.apache.commons.beanutils.BeanUtils;

import java.lang.reflect.InvocationTargetException;

/**
 * JavaBean的概念
 * 什么是JavaBean?
 * Bean理解为组件意思，JavaBean就是Java组件，在广泛的理解就是一个类，对于组件来说，
 * 关键在于要具有“能够被IDE构建工具侦测其属性和事件”的能力，通常在Java中。
 *
 * 一个JavaBean要具备这样的命名规则:
 * 1、对于一个名称为xxx的属性，通常你要写两个方法: geXxx()和setXxx)。 任何浏览这些方
 *      法的工具，都会把get或set后 面的第一个字母自动转换为小写。
 * 2、对于布尔型属性，可以使用以上.get和set的方式，不过也可以把get替换成is。
 * 3、Bean的普通方法不必遵循以上的命名规则，不过它们必须是public的。
 * 4、对于事件，要使用Swing中处理监听器的方式。如addWindowListener,removeWindowListener
 *
 * BeanUtils工具类
 **/

public class BeanTest {
    public static void main(String[] args) {
        //从客户端获取到的数据
        String name = "bin";
        String age = "18";
        String salary = "20000";

        Emp emp = new Emp();
        try {
            BeanUtils.setProperty(emp, "name", name);
            BeanUtils.setProperty(emp, "age", age);
            BeanUtils.setProperty(emp, "salary", salary);
        } catch (IllegalAccessException | InvocationTargetException e) {
            e.printStackTrace();
        }
        System.out.println(emp.getInfo());
    }
}
